// #include<iostream>
// using namespace std;

// //C++为了增强代码的可读性 引入了操作符重载
// //操作符重载是具有特殊名的函数
// //函数原型：返回值类型 operator 操作符(参数列表)
// //.*   ::  sizeof  ?:   . 注意以上5个运算符不能重载。


// //通过这一节来理解this指针和const

// class Date
// {
// public:
// Date(int year = 2025,int month = 4,int day = 28)
// {
//     _year = year;
//     _month = month;
//     _day = day;
// }
// //bool operator==(Date* this,const Date& d2)
// bool operator==(const Date& d2)
// {
//     return _year == d2._year
//         && _month == d2._month
//         && _day == d2._day;
// } 

// //在C++中 == 可以用于对内置类型的比较，也可以对自定义类型进行比较
// // ->重载操作符
// //操作符重载的意义：让自定义类型也可以想内置类型一样使用操作符
// //重载= 运算符
// Date& operator=(const Date& d2)
// {
//     if(this != &d2)
//     {
//         _year = d2._year;
//         _month = d2._month;
//         _day = d2._day;
//     }
//     return *this;
// }
// //返回值 + &主要是为了支持连续赋值


// private:
//     int _year;
//     int _month;
//     int _day;
// };


// int main()
// {
//     Date d1;
//     Date d2;
//     cout << (d1 == d2) <<'\n';
//     return 0;
// }

// //普通成员函数
// //指针本身：不可修改
// //指针指向的对象可修改
// //指针是这块空间的地址，指针指向的对象：相当与里面的值



// //赋值运算符重载是默认成员函数：用于为显示定义编译器会自动生成
